package ar.uade.edu.fain.ad.server.business;

import ar.uade.edu.fain.ad.common.transfer.ProductoVO;
import ar.uade.edu.fain.ad.common.transfer.UnidadVO;
import ar.uade.edu.fain.ad.server.dao.entity.ProductoEntity;

public class Producto {
	private Long id;
	private String nombre;
	private Unidad unidadUso;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public Unidad getUnidadUso() {
		return unidadUso;
	}

	public void setUnidadUso(Unidad unidadUso) {
		this.unidadUso = unidadUso;
	}

	public ProductoVO toVO() {
		ProductoVO prod = new ProductoVO();
		prod.setId(getId());
		prod.setNombre(getNombre());
		prod.setUnidadUso(new UnidadVO());
		prod.getUnidadUso().setId(getUnidadUso().getId());
		return prod;
	}

	public static ProductoVO toVO(ProductoEntity producto) {

		ProductoVO prod = new ProductoVO();
		prod.setId(producto.getId());
		prod.setNombre(producto.getNombre());
		prod.setUnidadUso(Unidad.toVO(producto.getUnidadUso()));

		return prod;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Producto other = (Producto) obj;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		return true;
	}

}
